<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ include file="../../commons/taglibs.jsp"%>
<div id="${param.id}"></div>
<script type="text/javascript">
	Ext.QuickTips.init();
	//yepnope("${ctx}/resources/js/user/user.js");
	Ext.ns("Ext.Hxhk.staff"); // 自定义一个命名空间
	staff = Ext.Hxhk.staff; // 定义命名空间的别名
	staff = {
		all : ctx + '/staff',
		save : ctx + "/staff/save",// 保存员工
		del : ctx + "/staff/del/",// 删除员工
		pageSize : 20,// 每页显示的记录数
		hasActive : true,
		SEX: eval('(${fields.sex==null?"{}":fields.sex})'),//注意括号
		IDCARDTYPE:eval('(${fields.idcardType==null?"{}":fields.idcardType})')
	};
	/** 改变页的combo*/
	staff.pageSizeCombo = new Share.pageSizeCombo({
		value : '20',
		listeners : {
			select : function(comboBox) {
				staff.pageSize = parseInt(comboBox.getValue());
				staff.bbar.pageSize = parseInt(comboBox.getValue());
				staff.store.baseParams.limit = staff.pageSize;
				staff.store.baseParams.start = 0;
				staff.store.load();
			}
		}
	});
	//覆盖已经设置的。具体设置以当前页面的pageSizeCombo为准
	staff.pageSize = parseInt(staff.pageSizeCombo.getValue());
	/** 基本信息-数据源 */
	staff.store = new Ext.data.Store({
		remoteSort : true,
		autoLoad : true,
		baseParams : {
			start : 0,
			limit : staff.pageSize
		},
		proxy : new Ext.data.HttpProxy({// 获取数据的方式
			method : 'POST',
			url : staff.all
		}),
		reader : new Ext.data.JsonReader({// 数据读取器
			totalProperty : 'results', // 记录总数
			root : 'rows' // Json中的列表数据根节点
		}, [ 'staffId', 'staffName', 'areaNo', 'birthday', 'genderCode','idCardCode',
				'idCardNo', 'mobile', 'homeAddr', 'discrible' ]),
		listeners : {
			'load' : function(store, records, options) {
				for(var i=0;i<store.getCount();i++){
					store.getAt(i).set('birthday',staff.todate(store.getAt(i).get('birthday')));	
					//store.getAt(i).set('birthday',staff.str2Date(store.getAt(i).get('birthday')));	
					//alert(store.getAt(i).get('birthday'));
					//alert(records[i].data.birthday);
				}
			}
		}
	});
	/** 基本信息-选择模式 */
	staff.selModel = new Ext.grid.CheckboxSelectionModel({
		singleSelect : true,
		listeners : {
			'rowselect' : function(selectionModel, rowIndex, record) {
				staff.deleteAction.enable();
				staff.editAction.enable();
			},
			'rowdeselect' : function(selectionModel, rowIndex, record) {
				staff.deleteAction.disable();
				staff.editAction.disable();
			}
		}
	});
	
	/** 基本信息-数据列 */
	staff.colModel = new Ext.grid.ColumnModel({
		defaults : {
			sortable : true,
			width : 110
		},
		columns : [ staff.selModel, {
			hidden : true,
			header : '员工ID',
			dataIndex : 'staffId'
		}, {
			header : '员工名称',
			dataIndex : 'staffName'
		}, {
			header : '地域编号',
			dataIndex : 'areaNo'
		}, {
			header : '生日',
			dataIndex : 'birthday',
			dateFormat: 'Y-m-d' ,
			//convert: staff.todate,
			renderer: Ext.util.Format.dateRenderer('Y-m-d')
			//renderer : Ext.util.Format.dateRenderer('Y-m-d H:i:s'),
		}, {
			header : '性别',
			dataIndex : 'genderCode',
			renderer : function(v) {
				return Share.map(v, staff.SEX, '其他');
		 	}
		}, {
			header : '身份证类型',
			dataIndex : 'idCardCode',
			renderer : function(v) {
				return Share.map(v, staff.IDCARDTYPE, '其他');
		 	}
		}, {
			header : '身份证编号',
			dataIndex : 'idCardNo'
		}, {
			header : '手机',
			dataIndex : 'mobile'
		}, {
			header : '家庭住址',
			dataIndex : 'homeAddr'
		}, {
			header : '描述信息',
			dataIndex : 'discrible'
		// renderer : function(value, metadata, record) {
		// if (value) {
		// metadata.attr = 'ext:qwidth="200" ext:qtitle="备注"
		// ext:qtip="'
		// + value + '"';
		// }
		// return value;
		// }
		} ]
	});
	/** 新建 */
	staff.addAction = new Ext.Action({
		text : '新建',
		//text : '<fmt:message key="common.cancel"/>',
		iconCls : 'user_add',
		handler : function() {
			staff.addWindow.setIconClass('user_add'); // 设置窗口的样式
			staff.addWindow.setTitle('新建员工'); // 设置窗口的名称
			staff.addWindow.show().center(); // 显示窗口
			staff.formPanel.getForm().reset(); // 清空表单里面的元素的值.
			staff.hasActive = true;
			staff.tabPanel.activate(staff.formPanel);
		}
	});
	/** 编辑 */
	staff.editAction = new Ext.Action({
		text : '编辑',
		iconCls : 'user_edit',
		disabled : true,
		handler : function() {
			var record = staff.grid.getSelectionModel().getSelected();
			//日期转化
			//record.data.birthday = staff.todate(record.data.birthday);
			staff.addWindow.setIconClass('user_edit'); // 设置窗口的样式
			staff.addWindow.setTitle('编辑员工'); // 设置窗口的名称
			staff.addWindow.show().center();
			staff.formPanel.getForm().reset();
			staff.formPanel.getForm().loadRecord(record);
			staff.hasActive = true;
			staff.tabPanel.activate(staff.formPanel);
		}
	});
	/** 删除 */
	staff.deleteAction = new Ext.Action({
		text : '删除',
		iconCls : 'user_delete',
		disabled : true,
		handler : function() {
			staff.delFun();
		}
	});
	/** 查询 */
	staff.searchField = new Ext.ux.form.SearchField({
		store : staff.store,
		paramName : 'staffName',
		emptyText : '请输入员工姓名',
		style : 'margin-left: 5px;'
	});
	/** 顶部工具栏 */
	staff.tbar = [ staff.addAction, '-', staff.editAction, '-',
			staff.deleteAction, '-', staff.searchField ];
	/** 底部工具条 */
	staff.bbar = new Ext.PagingToolbar({
		pageSize : staff.pageSize,
		store : staff.store,
		displayInfo : true,
		//plugins : new Ext.ux.ProgressBarPager(), // 分页进度条
		items : [ '-', '&nbsp;', staff.pageSizeCombo ]
	});
	
	/** 基本信息-表格 */
	staff.grid = new Ext.grid.GridPanel({
		title : '员工列表',
		store : staff.store,
		colModel : staff.colModel,
		selModel : staff.selModel,
		tbar : staff.tbar,
		bbar : staff.bbar,
		autoScroll : 'auto',
		region : 'center',
		// autoExpandColumn :'describle',
		loadMask : true,
		viewConfig : {},
		stripeRows : true
	});
	
	staff.genderCodeCombo = new Ext.form.ComboBox({
		fieldLabel : '性别',
		hiddenName : 'genderCode',
		name : 'genderCode',
		triggerAction : 'all',
		mode : 'local',
		//fields : [ 'v', 't' ],
		store : new Ext.data.SimpleStore({
			//fields:['district'],
            //data:[['深圳'],['上海'],['北京'],['惠州']] 
			fields : ['v', 't'],
			data : Share.map2Ary(staff.SEX)
		}),
		valueField : 'v',
		displayField : 't',
		allowBlank : true,
		editable : false,
		anchor : '99%'
	});
	
	staff.idCardCombo = new Ext.form.ComboBox({
		fieldLabel:'证件类型',
		hiddenName:'idCardCode',
		name:'idCardCode',
		triggerAction : 'all',
		mode : 'local',
		store : new Ext.data.ArrayStore({
			fields : [ 'v', 't' ],
			data : Share.map2Ary(staff.IDCARDTYPE)
		}),
		valueField : 'v',
		displayField : 't',
		allowBlank : true,
		editable : false,
		anchor : '99%'
	});
	/** 基本信息-详细信息的form */
	staff.formPanel = new Ext.form.FormPanel({
		autoScroll : true,
		frame : false,
		title : '员工信息',
		bodyStyle : 'padding:10px;border:0px',
		labelwidth : 70,
		defaultType : 'textfield',
		items : [ {
			xtype : 'hidden',
			fieldLabel : 'staffId',
			name : 'staffId'
		}, {
			fieldLabel : '员工姓名',
			maxLength : 64,
			allowBlank : false,
			name : 'staffName',
			anchor : '99%'
		},staff.genderCodeCombo,{
			fieldLabel : '出生日期',
			xtype:"datefield",  
			type:"date",
		    //format:"Y-m-d H:i:s",
		    format:"Y-m-d",
		    //value:"1984-12-03",
		   // convert:staff.todate,
		    //renderer : Ext.util.Format.dateRenderer('Y-m-d'),
		    name : 'birthday',
			anchor : '99%'
		},staff.idCardCombo,{
			fieldLabel : '证件编码',
			maxLength : 64,
			name : 'idCardNo',
			anchor : '99%'
		},{
			fieldLabel : '手机',
			maxLength : 32,
			allowBlank : false,
			name : 'mobile',
			anchor : '99%'
		},{
			xtype : 'textarea',
			fieldLabel : '描述信息',
			maxLength : 128,
			height : 90,
			name : 'discrible',
			anchor : '99%'
		} ]
	});
	
	staff.tabPanel = new Ext.TabPanel({
		activeTab : 0,
		defaults : {
			autoHeight : true
		},
		items : [ staff.formPanel ]
	});
	
	/** 编辑新建窗口 */
	staff.addWindow = new Ext.Window({
		layout : 'fit',
		width : 500,
		height : 400,
		closeAction : 'hide',
		plain : true,
		modal : true,
		resizable : true,
		items : [ staff.tabPanel ],
		buttons : [ {
			text : '保存',
			handler : function() {
				staff.saveFun();
			}
		}, {
			text : '重置',
			handler : function() {
				var form = staff.formPanel.getForm();
				var staffId = form.findField("staffId").getValue();
				var staffName = form.findField("staffName").getValue();
				var mobile = form.findField("mobile").getValue();
				var discrible = form.findField("discrible").getValue();
				form.reset();
				//if (id != '')
				//	form.findField("staffId").setValue(id);
				if (staffId != '')
					form.findField("staffId").setValue(staffId);
				//if (mobile != '')
				//	form.findField("mobile").setValue(mobile);
				//if (mobile != '')
				//	form.findField("discrible").setValue(discrible);
			}
		} ]
	});
	
	staff.saveFun = function() {
		var form = staff.formPanel.getForm();
		if (!form.isValid()) {
			staff.tabPanel.activate(staff.formPanel);
			return;
		}
		var params = {};
		$.extend(params, form.getValues());
		//params.birthday=staff.str2Date(params.birthday);
		//alert(params.birthday);
		//alert(params.birthday);
		// 发送请求
		Share.AjaxRequest({
			url : staff.save,
			params : params,
			callback : function(json) {
				staff.addWindow.hide();
				//user.alwaysFun();
				staff.store.reload();
				//fix bug 打开页面，编辑，不点击角色的tab。直接点击保存，再点击新建，在保存，会直接提交。
				//	user.tabPanel.activate(user.roleGrid);
				//Share.resetGrid(user.roleGrid);
			}
		});
	};
	
	staff.delFun = function() {
		var record = staff.grid.getSelectionModel().getSelected();
		Ext.Msg.confirm('提示', '确定要删除这条记录吗?', function(btn, text) {
			if (btn == 'yes') {
				// 发送请求
				Share.AjaxRequest({
					url : staff.del + record.data.staffId,
					callback : function(json) {
						//user.alwaysFun();
						staff.store.reload();
					}
				});
			}
		});
	};
	
	staff.todate= function(v){
		if(v == null)
		{
			return null;
		}
		var d = new Date();
		var str = v.toString();
		//var str1 = str.replace("/Date(", "");
		//var str2 = str1.replace(")/", "");
		var dd = parseInt(str);
		d.setTime(dd); 
		return d;
	};
	
	staff.str2Date=function(v){
		if(v == null)
		{
			return null;
		}
		var d = Date.parse(v);//new Date(Date.parse(v.replace(/-/g,   "/")));
		alert(d);
		return d;
	}
    
	staff.myPanel = new Ext.Panel({
		id : '${param.id}' + '_panel',
		renderTo : '${param.id}',
		layout : 'border',
		boder : false,
		height : index.tabPanel.getInnerHeight() - 1,
		items : [ staff.grid ]
	});
</script>